<?php

namespace com\aristo\ingenieros\model;

include 'com/aristo/ingenieros/view/UserLoginView.php';

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

use com\aristo\ingenieros\view\UserLoginView;
use \Exception;
use \mysqli;

/**
 * Description of ModelUser
 *
 * @author FAMILIA
 */
class UserQuery {

    /**
     * Funcion que nos entrega un usuario valido con usuario y contraseña y estado eliminado 'NO'
     * 
     * @param type $user
     * @param type $password
     * @param mysqli $con
     * @return \stdClass
     */
    public static function getUserLoginModule($user, $password, mysqli $con) {
        try {
            $user = utf8_encode($user);
            $password = utf8_encode($password);

            $sql = "SELECT
                        u.idusuario,
                        u.persona_id,
                        `mod`.descripcion
                    FROM
                        usuario AS u
                        INNER JOIN modulo AS `mod` ON u.modulo_id = `mod`.idmodulo
                    WHERE
                        u.usuario = '" . $user . "' AND
                        u.contrasena = '" . $password . "' AND
                        u.eliminado = 'NO'";

            //$con->autocommit(FALSE);

            $query = $con->query($sql);

            if ($query) {
                if ($query->num_rows > 0) {
                    while ($row = $query->fetch_row()) {
                        $idUsuario = utf8_decode($row[0]);
                        $idPersona = utf8_decode($row[1]);
                        $modulo = utf8_decode($row[2]);

                        $userLogin = new UserLoginView();
                        $userLogin->setIdusuario($idUsuario);
                        $userLogin->setIdpersona($idPersona);
                        $userLogin->setModulo($modulo);
                        return $userLogin;
                    }
                } else {
                    return "USUARIO O CONTRASEÑA INVALIDO";
                }
            } else {
                return "ERROR DE RED.<br/><br/>Codigo: " . $con->errno . "<br/><br/>" . nl2br($con->error);
            }
        } catch (Exception $exc) {
            return 'ERROR EN EL MODELO DEL USUARIO: ' . $exc->getMessage() . "<br/>" . nl2br($exc->getTraceAsString());
        }
    }

}